package com.zimmur.app.mocolink.dao;

import com.zimmur.app.mocolink.domain.model.Order;
import com.zimmur.app.mocolink.domain.model.OrderExample;
import com.zimmur.app.mocolink.domain.param.OrderParam;
import com.zimmur.app.mocolink.domain.param.OrderParamForManage;
import com.zimmur.app.mocolink.domain.vo.OrderInfo;
import com.zimmur.app.mocolink.domain.vo.OrderVo;

import java.util.List;
import org.apache.ibatis.annotations.Param;

public interface OrderMapper {
    int countByExample(OrderExample example);

    int deleteByExample(OrderExample example);

    int deleteByPrimaryKey(Integer id);

    int insert(Order record);

    int insertSelective(Order record);

    List<Order> selectByExample(OrderExample example);

    Order selectByPrimaryKey(Integer id);

    int updateByExampleSelective(@Param("record") Order record, @Param("example") OrderExample example);

    int updateByExample(@Param("record") Order record, @Param("example") OrderExample example);

    int updateByPrimaryKeySelective(Order record);

    int updateByPrimaryKey(Order record);
    /**
     * 条件查询用户订单
     *@Description
     *@param param
     *@return 
     *@author zcx
     *@Time 2017年10月16日 下午4:00:26
     */
    List<OrderVo> selectByParam(OrderParam param);
    /**
     * 条件统计用户订单
     *@Description
     *@param param
     *@return 
     *@author zcx
     *@Time 2017年10月16日 下午4:00:36
     */
    int countByParam(OrderParam param);
    /**
     * 更新订单状态
     *@Description
     *@param orderId
     *@param status
     *@param statusName
     *@return 
     *@author zcx
     *@Time 2017年10月17日 上午10:04:16
     */
    int updateOrderStatus(@Param("orderId")Integer orderId,@Param("status")String status,@Param("statusName")String statusName);
    /**
     * 条件查询订单
     *@Description
     *@param param
     *@return 
     *@author zcx
     *@Time 2017年10月26日 下午2:26:58
     */
    List<OrderInfo> selectByParamForManage(OrderParamForManage param);
    /**
     * 条件统计订单
     *@Description
     *@param param
     *@return 
     *@author zcx
     *@Time 2017年10月26日 下午2:27:09
     */
    int countbyParamForManage(OrderParamForManage param);
}